import request from '@/utils/request'; // 若依框架统一请求工具

/**
 * 获取角色列表（分页）
 * @param {Object} params - 查询参数（pageNum, pageSize, keyword等）
 * @returns {Promise} - 后端响应Promise
 */
export function getRoleList(params) {
  return request({
    url: '/tms/set/role/list',
    method: 'get',
    params,
  });
}

/**
 * 新增角色
 * @param {Object} data - 角色信息（roleId, roleName, deptPath等）
 * @returns {Promise} - 后端响应Promise
 */
export function addRole(data) {
  return request({
    url: '/tms/set/role',
    method: 'post',
    data,
  });
}

/**
 * 编辑角色
 * @param {Object} data - 角色信息（含roleId）
 * @returns {Promise} - 后端响应Promise
 */
export function editRole(data) {
  return request({
    url: '/tms/set/role',
    method: 'put',
    data,
  });
}

/**
 * 删除角色
 * @param {string} roleId - 角色ID
 * @returns {Promise} - 后端响应Promise
 */
export function deleteRole(roleId) {
  return request({
    url: `/tms/set/role/${roleId}`,
    method: 'delete',
  });
}

/**
 * 切换角色状态
 * @param {string} roleId - 角色ID
 * @param {string} status - 目标状态（启用/禁用）
 * @returns {Promise} - 后端响应Promise
 */
export function changeRoleStatus(roleId, status) {
  return request({
    url: '/tms/set/role/changeStatus',
    method: 'put',
    data: { roleId, status },
  });
}

/**
 * 导出角色列表
 * @param {Object} params - 查询参数（与getRoleList一致）
 * @returns {Promise} - 后端响应Promise（返回blob类型）
 */
export function exportRole(params) {
  return request({
    url: '/tms/set/role/export',
    method: 'get',
    params,
    responseType: 'blob', // 导出文件需指定blob类型
  });
}
